МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ І СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
КАФЕДРА ЕОМ
ЗВІТ
до лабораторної роботи №3-4
з дисципліни «Комп’ютерні системи»
на тему:
«Аналіз програмної моделі процесу роботи арифметичного конвеєра»
Львів 2013
МЕТА ВИКОНАННЯ РОБОТИ
Навчитись здійснювати аналіз програмних моделей комп’ютерних систем, виконаних на мові System C.
ТЕОРЕТИЧІ ВІДОМОСТІ
Удосконалення елементної бази вже не дає кардинального росту продуктивності обчислювальної системи. Більш перспективними у цьому плані розглядаються архітектурні рішення, серед яких одне із найбільш значимих – конвеєризація.
Для пояснення ідеї конвеєра розглянемо малюнок 1, де показаний окремий функціональний блок (ФБ). Вихідні дані завантажуються у у вхідний регістр Ргвх , обробляється у функціональному блоці, а результат обробки фіксується у вихідному регістрі Ргвих. Якщо максимальний час обробки у ФБ дорівнює Тmax , то нові дані можуть бути занесені у вхідний регістр Ргвх не раніше, ніж через Тmax.
БПвх
®
ФБ1
®
БП1
®
ФБ2
®
БП2
®
ФБ3
®
БПвих
Рис. 1. Обробка інформації у конвеєрі з регістрами.
Тепер розподілемо функції, що виконуються у функціональному блоці ФБ на малюнку 1 між трьома послідовними незалежними блоками: ФБ1 , ФБ2 і ФБ3, причому так, що б максимальний час обробки у кожному ФБi був однаковий і дорівнював Tmax/3. Між блоками розмістимо буферні регістри Ргі, що призначені для збереження результату обробки у ФБі, на випадок, якщо наступний за ним функціональний блок ще не готовий використовувати цей результат.
У розглянутій схемі дані на вхід конвеєра можуть подаватися х інтервалом Tmax/3 (тобто, втричі частіше), і хоча затримка від моменту поступлення першої одиниці даних у Ргвх до моменту появи результату її обробки на виході Ргвих як і раніше складає Tmax, наступні результати з’являються на виході Ргвих вже з інтервалом Tmax/3.
На практиці рідко вдається добитися того, щоб затримки у кожному ФБі були однаковими. Як наслідок, продуктивність конвеєра знижується, оскільки період поступлення вхідних даних визначається максимальним часом їх обробки у кожному функціональному блоці. Для усунення цього недоліку або, в решті решт, часткової його компенсації кожний буферний регістр Ргі потрібно замінити буферною пам’яттю БПі , здатною зберігати множину даних і організований за принципом FIFO – “перший зайшов – перший вийшов”.
БПвх
®
ФБ1
®
БП1
®
ФБ2
®
БП2
®
ФБ3
®
БПвих
Рис. 2. Обробка інформації у конвеєрі з буферною пам’ятю.
Обробивши елемент даних, ФБі заносить результат у БПі, витягає з БПі-1 новий елемент даних і починає черговий цикл обробки, причому ця послідовність здійснюється кожним функціональним блоком незалежно від інших блоків. Обробка у кожному блоці може продовжуватися до тих пір, доки не беде ліквідована попередня черга або доки не буде переповнена наступна черга. Якщо емність буферної пам’яті достатньо велика, різниця у часі обробки не відбивається на продуктивності, тим не менш бажано, щоб середня тривалість обробки у всіх ФБі була однаковою.
ЗАВДАННЯ
1. Проаналізувати склад програмної моделі арифметичного конвеєра, (програма PIPE), яка виконана на мові System C.
2. Визначити інформаційні потоки у моделі арифметичного конвеєра.
3. Визначити зв’язки керування.
4. Накреслити блоки, з яких складається арифметичний конвеєр згідно поданої моделі.
5. Здійснити модернізацію функцій або параметрів арифметичного конвеєра, погодивши пропозицію з викладачем.
6. Накреслити структурну схему арифметичного конвеєра, яка відповідає програмній моделі, що аналізується.
Хід роботи
Процес встановлення та налаштування System C для VS 2010
Першим кроком потрібно завантажити найновішу версію System C з офіційного сайту розробника. [http://www.systemc.org]
Розпакувати System C (наприклад: на диск C:\), перейти в «C:\systemc-2.3.0\msvc80\SystemC» запустити SystemC.sln за допомогою Visual Studio 2010 і скомпілювати даний проект (клавіша F7). В результаті отримаємо в...